﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace sy4_3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            textBox1.Text = "3.14159";
        }

        // 单选按钮和复选框的共享事件：处理三角函数计算和格式设置
        private void radSin_CheckedChanged(object sender, EventArgs e)
        {
            double x, y;
            FontStyle fontStyle = FontStyle.Regular;

            try
            {
                // 尝试将参数转换为数字
                x= double.Parse(textBox1.Text);

                // 根据选中的三角函数计算结果
                if (radSin.Checked)
                    y= Math.Sin(x);
                else if (radCos.Checked)
                    y= Math.Cos(x);
                else // radTan.Checked
                    y= Math.Tan(x);

                // 结果保留2位小数
                textBox2.Text = Math.Round(y, 2).ToString();

                // 设置结果文本的格式（粗体、斜体、颜色）
                if (chkBold.Checked) fontStyle |= FontStyle.Bold;
                if (chkItalic.Checked) fontStyle |= FontStyle.Italic;
                textBox2.Font = new Font(textBox2.Font.Name, textBox2.Font.Size, fontStyle);

                if (chkRed.Checked)
                    textBox2.ForeColor = Color.Red;
                else
                    textBox2.ForeColor = Color.Black;
            }
            catch
            {
                // 输入非数字时提示错误
                MessageBox.Show("参数必须是数字！", "输入错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                textBox1.Text = "3.14159";
                textBox1.Focus();
                textBox1.SelectAll();
            }
        }

        // 为其他单选按钮和复选框绑定相同的事件处理方法
        // 选中 radCos，在属性窗口的“事件”中，将 CheckedChanged 事件选择 radSin_CheckedChanged
        // 选中 radTan，同理绑定 radSin_CheckedChanged
        // 选中 chkBold、chkItalic、chkRed，同理绑定 radSin_CheckedChanged
    }
}